package Controler;

import java.util.GregorianCalendar;

public class Fonctions 
{
	public static boolean verifierDate(String date)
	{
		boolean isDate=false;
		
		if (date.length()==10 && date.substring(4,5).equals("-"))
		{
			int p1=0,p2=0,p3=0;
			String annee,mois,jour;
			
			annee = date.substring(0,4);
			mois = date.substring(5,7);
			jour = date.substring(8,10);
			
			if(date.substring(4,5).equals("-") && date.substring(7,8).equals("-"))
			{
				try
				{
					p1 = Integer.parseInt(annee);
					p2 = Integer.parseInt(mois)-1;
					p3 = Integer.parseInt(jour);
					isDate=true;
				}
				catch (Exception e)
				{
					isDate=false;
				}
				
				if(isDate)
				{
					try
					{
						GregorianCalendar gc = new GregorianCalendar(p1, p2, p3);
						gc.setLenient(false); // sans cette ligne, pas d'exception possible
						System.out.println( gc.getTime() );
						isDate=true;
					}
					catch (Exception e)
					{
						isDate=false;
						e.printStackTrace(); 
					}
				}
			}
			else
			{
				isDate=false;
			}
		}
		if (date.length()==10 && date.substring(2,3).equals("-"))
		{
			int p1=0,p2=0,p3=0;
			String annee,mois,jour;
			
			jour = date.substring(0,2);
			mois = date.substring(3,5);
			annee = date.substring(6,10);
			
			if(date.substring(5,6).equals("-"))
			{
				try
				{
					p1 = Integer.parseInt(annee);
					p2 = Integer.parseInt(mois)-1;
					p3 = Integer.parseInt(jour);
					isDate=true;
				}
				catch (Exception e)
				{
					isDate=false;
				}
				
				if(isDate)
				{
					try
					{
						GregorianCalendar gc = new GregorianCalendar(p1,p2,p3);
						gc.setLenient(false); // sans cette ligne, pas d'exception possible
						System.out.println( gc.getTime() );
						isDate=true;
					}
					catch (Exception e)
					{
						isDate=false;
						e.printStackTrace(); 
					}
				}
			}
			else
			{
				isDate=false;
			}
		}
		if(date.length()!=10 && !date.substring(2,3).equals("-") || date.length()!=10 && !date.substring(4,5).equals("-"))
		{
			isDate=false;
		}

		return isDate;
	}

	public static boolean verifierHeure(String heure)
	{
		boolean heureValide = false;
		String h,m;
		int hour=0,minute=0;
		
		if(heure.length()==4 || heure.length()==7)
		{
			h = heure.substring(0,1);
			m = heure.substring(2,4);
			
			try
			{
				hour = Integer.parseInt(h);
				minute = Integer.parseInt(m);
			}
			catch (Exception e)
			{
				heureValide=false;
			}
			
			if(heure.substring(1,2).equals(":"))
			{
				heureValide=true;
			}
			else
			{
				heureValide=false;
			}
			
			if(hour<0 || hour>23 || minute<0 || minute>59)
			{
				heureValide=false;
			}
			else
			{
				heureValide=true;
			}
		}
		else
		{
			if(heure.length()==5 || heure.length()==8)
			{
				h = heure.substring(0,2);
				m = heure.substring(3,5);
				
				try
				{
					hour = Integer.parseInt(h);
					minute = Integer.parseInt(m);
				}
				catch (Exception e)
				{
					heureValide=false;
				}
				
				if(heure.substring(2,3).equals(":"))
				{
					heureValide=true;
				}
				else
				{
					heureValide=false;
				}
				if(hour<0 || hour>23 || minute<0 || minute>59)
				{
					heureValide=false;
				}
				else
				{
					heureValide=true;
				}
			}
			else
			{
				heureValide=false;
			}
		}
		
		return heureValide;
	}

	public static boolean comparerHeure(String heureDebut, String heureFin)
	{
		boolean ok=false;
		int hd,hf,md,mf;
		
		if(heureDebut.length()==4 || heureDebut.length()==7)
		{
			heureDebut=String.valueOf(0)+heureDebut;
		}
		if(heureFin.length()==4 || heureFin.length()==7)
		{
			heureFin=String.valueOf(0)+heureFin;
		}
		if(heureDebut.length()==8)
		{
			heureDebut=heureDebut.substring(0,5);
		}
		if(heureFin.length()==8)
		{
			heureFin=heureFin.substring(0,5);
		}
		
		System.out.println(heureDebut);
		
		if(heureDebut.length()==5 && heureFin.length()==5 || heureDebut.length()==8 && heureFin.length()==8)
		{
			hd = Integer.parseInt(heureDebut.substring(0,2));
			hf = Integer.parseInt(heureFin.substring(0,2));
			md = Integer.parseInt(heureDebut.substring(3,5));
			mf = Integer.parseInt(heureFin.substring(3,5));
			
			if(hd<hf)
			{
				ok=true;
			}
			if(hd==hf)
			{
				if(md<mf)
				{
					ok=true;
				}
			}
		}
		
		
		return ok;
	}
}
